package demo4Test;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 石方旭
 * Date: 2022-04-23
 * Time: 20:08
 */

//public class GenericMethodTest {
//
//    public static <E> void PrintArray(E[] printArr) {
//        for(E element:printArr) {
//            System.out.print(element+" ");
//        }
//        System.out.println();
//    }
//
//    public static void main(String[] args) {
//        Integer[] integer = {1,2,5,6,9};
//        Character[] character = {'a','b','v','m'};
//        Double[] doubles = {1.0,2.3,5.6,9.6,3.0};
//        PrintArray(integer);
//        PrintArray(character);
//        PrintArray(doubles);
//    }
//}
//
//class Box<T> {
//    private T t;
//    public T getT() {
//        return this.t;
//    }
//
//    public void setT(T t) {
//        this.t=t;
//    }
//}
//
//public class GenericMethodTest {
//    public static void main(String[] args) {
//        Box<Integer> integerBox = new Box<Integer>();
//        Box<String> stringBox = new Box<>();
//        Box<Double> doubleBox = new Box<>();
//        integerBox.setT(new Integer(10));
//        stringBox.setT(new String("厚积薄发"));
//        doubleBox.setT(new Double(5.2));
//        System.out.println("integerBox:"+integerBox.getT());
//        System.out.println("stringBox:"+stringBox.getT());
//        System.out.println("doubleBox:"+doubleBox.getT());
//    }
//}

//
//class Book<T> {
//    private T t;
//
//    public void setT(T t) {
//        this.t =t;
//    }
//
//    public T getT() {
//        return this.t;
//    }
//}
//
//public class GenericMethodTest {
//    public static void main(String[] args) {
//        Book<String> book1 = new Book<>();
//        Book<String> book2 = new Book<>();
//        Book<Integer> bookMoney = new Book<>();
//        Book<Double> bookPrize = new Book<>();
//        book1.setT(new String("红楼梦"));
//        bookMoney.setT(new Integer(123));
//        bookPrize.setT(new Double(88.5));
//        book2.setT(new String("西游记"));
//        System.out.println("书名1-》"+book1.getT());
//        System.out.println("书名2->"+book2.getT());
//        System.out.println("==========下列是书的价格：============");
//        System.out.println("书的价格1->"+bookMoney.getT());
//        System.out.println("书的价格2->"+bookPrize.getT());
//
//    }
//
//}

public class GenericMethodTest {
//    //比较三个值并返回最大值
//    public static <T extends Comparable<T>> T maximum(T x, T y, T z) {
//        T max = x; // 假设x是初始最大值
//        if ( y.compareTo( max ) > 0 ){
//            max = y; //y 更大
//        }
//        if ( z.compareTo( max ) > 0 ){
//            max = z; // 现在 z 更大
//        }
//        return max; // 返回最大对象
//    }
//    public static void main( String args[] ) {
//        System.out.printf( "%d, %d 和 %d 中最大的数为 %d\n\n", 3, 4, 5, maximum( 3, 4, 5 ) );
//        System.out.printf( "%.1f, %.1f 和 %.1f 中最大的数为 %.1f\n\n", 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) );
//        System.out.printf( "%s, %s 和 %s 中最大的数为 %s\n","pear", "apple", "orange", maximum( "pear", "apple", "orange" ) );
//    }


    public static <T extends Comparable<T>> T maxiNUm(T x,T y ,T z) {
        T max =x;
        if(y.compareTo(max)>0) {
            max=y;
        }
        if(z.compareTo(max)>0) {
            max = z;
        }
        return max;
    }
    public static void main(String[] args) {
        System.out.println(maxiNUm(199,500000,6));
        System.out.println(maxiNUm(19.5,0.3,18.8));
        System.out.println(maxiNUm("why","How","what"));
    }

}